<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <link rel="stylesheet" href="/js/prism.css">
    <link rel="stylesheet" href="/css/app.css">
    <title>评论程序分析展示排序与交互 - 叫兽</title>
    <link rel="icon" type="image/x-icon" class="js-site-favicon" href="/img/favicon.ico">
  </head>
  <body>

        <div class="container bg-white pb-5 px-5 spx-0">
            
            <h1 class="post-title">评论程序分析展示排序与交互</h1>




            <p>分析会从展示和添加两个维度取操作</p><h2>微博：</h2><p>微博是一个少部分熟人，更多是陌生人和粉丝的社区，微博作者发布的内容很重要，评论也有很多，评论中也有优质内容，需要有一个机制把优质评论从众多评论中筛选出来。</p><h3>基础功能和展示元素：</h3><p>功能：评论、回复、点赞、投诉、屏蔽</p><p>展示元素：用户头像、用户昵称、用户获得的相关勋章、用户评论内容、评论时间（评论时间经过了展示优化，使用了更利于人阅读的方式：多少分钟前，几天前）</p><h3>展示:</h3><p>微博提供了两种排序方式，一种是默认按热度排序，一种是按时间排序。按时间排序是按时间倒序排序，最新的评论排在了最前面。</p><p>时间排序比较简单，就是最新的评论，在最前面。</p><p>对用户来说，按热度进行展示，看到的评论更有价值一些，但热度不是简单的按点赞数计算，根据观察，热度应该是 点赞和评论的回复两个加在一起影响的，因为还有看到按热度排序的时候，点赞数3950 排名在了5264上面。如下图</p><p><img src="/static/2018/11/img/1.png" alt="avatar" /></p><p>从图可以看到，3950的回复数有930条，5264的回复数是259条，也不仅仅是两个相加。 3950 + 930 = 4880, 5264 + 259 = 5523, 说明在进行排序的时候，点赞数和评论之间还有一定的权重参与计算。</p><p>评论的回复也是这样。按照权重计算进行排序，具体怎么计算，需要注册几个账号一点一点的试试看。</p><h4>排版</h4><p>其次所有的评论回复并不会像网易一样进行盖楼模式，而是简单化，最多只允许有两个层级，就是评论一个层级，评论的回复一个层级，这样简化了排版，评论列表看起来更干净和易于阅读，网易盖楼的方式总觉得太乱了一点。</p><h3>添加:</h3><p>在微博添加评论，为了让用户感受到添加成功，自己的评论会展示在所有评论的第一条。</p><p>如果点击刷新，自己的评论就按默认顺序排到最后面去了。</p><p>这么做的原因就是如果用户添加了评论，直接就跑到了最后，那么用户是看不到自己的评论的，会以为没有添加成功。</p><h2>微信：</h2><p>微信是一个熟人社交圈子</p><h3>微信朋友圈</h3><p>微信朋友圈的人有两个特点，一个是里面全是熟人，一个是除自己之外，除非是好友才能相互看到消息。</p><p>朋友圈的信息的主角是作者本人，最关注评论的也是作者本人，所以朋友圈评论的排序设计都是以作者位第一来进行设计。</p><p>对于自己来说，每一条朋友圈的评论都是熟人评论，对自己很重要的，所以是按时间顺序正序排序的；同时每次有人给评论，都会有消息通知，作者不会错过有人评论</p><p>对于朋友圈的好友来说，你们两个同时都认识的人，同时又给你评论的人不会非常多，所以直接正序排列不会有太大负担。</p><p>朋友圈的评论没有点赞功能。是因为评论内容不会非常多，不需要点赞来筛选优质内容。</p><h3>微信微信公众号文章</h3><p>微信公众号的受众和微博很像。</p><h3>基础功能和展示元素：</h3><p>功能：评论、点赞</p><p>展示元素：用户头像、用户昵称、用户评论内容 （连评论时间都没有，话说评论时间对看评论的用户的意义在哪里呢？）</p><h4>展示</h4><p>微信公众号文章中的评论展示比较简单，直接就是按评论点赞进行排序。如果点赞数相同，就按添加时间进行正序排序。但是公众号的评论展示是不显示评论时间的</p><h3>排版</h3><p>微信公众号虽然也可以两级，但是回复只允许公众号相关人员进行，普通关注只能评论不可以进行回复。为什么要这么做呢？为了更简单？</p><h3>添加</h3><p>微信公众号文章中的评论，点添加是到了另外一个页面进行，因此评论添加成功后，在评论页面下方展示了评论的内容。但是微信公众号文章的评论内容是需要审核后才会显示到评论列表中，因此你完成评论后，返回或者重新打开评论列表页，是看不到自己的评论的。</p><h2>小红书</h2><h2>抖音</h2><h2>淘宝</h2><h2>京东</h2><h2>美团</h2><h2>小米官网</h2>
            <p class="text-left text-muted">2018-11-26 03:51</p>
        </div>
        <div class="container">
            <div class="row mt-4">
                <div class="col-6 text-left"><a href="/p/2018/11/27/clojure-future-promise/">上一篇: future and promise in clojure</a></div>
                <div class="col-6 text-right"><a href="/p/2018/11/16/js和css刷新缓存不会更新问题解决/">下一篇:js和css刷新缓存不会更新问题解决</a></div>
            </div>
        </div>

        <button class="btn btn-link m-menu-toggle d-md-none fixed-top collapsed" type="button" data-toggle="collapse" data-target="#m-menu" aria-controls="m-menu" aria-expanded="false" aria-label="Toggle docs navigation"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="30" height="30" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-miterlimit="10" d="M4 7h22M4 15h22M4 23h22"></path></svg>
        </button>
        <ul class="nav flex-column collapse fixed-top site-menu d-md-block" id="m-menu">
            <li class="nav-item">
                <a class="nav-link" href="/">首页</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/p/list/">所有文章</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/p/about-me/">关于我</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="https://github.com/arlicle">Github</a>
          </li>
        </ul>

        
    <div class="container mt-5">
        <h3>留言</h3>
        <div id="commentApp"></div>
    </div>
    <script>
        var AL_configs = {
            "post_id":"/p/2018/11/19/评论程序分析展示排序与交互/",
            "appid":"847e226e8a46f64045d45312245a68ba1368a564"
        };
        (function() {
            var hm = document.createElement("script");
            hm.src = "https://comment.debugmyself.com/sc.js";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
    </script>


        <footer class="footer mt-5 pb-2">
        <div class="container text-center">
          
          <p><span class="text-black-50">Powered by <a href="https://github.com/arlicle/ablog">ablog</a> © 2019 叫兽</span></p>
          <p><span class="text-black-50"><a href="http://www.beian.miit.gov.cn/">滇ICP备10201832号-3</a></span></p>
          
        </div>
        </footer>
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
        <script src="/js/prism.js"></script>
        <script>
        $(function () {
            $('[data-toggle="tooltip"]').tooltip();
        })
        </script>
        <script type="text/x-mathjax-config">
        MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}, displayAlign: "left",scale: 180});
        </script>
        <script type="text/javascript" async
        src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_SVG" async>
        </script>
  </body>
</html>